package com.future.message.Mapper;

import com.future.message.Utils.ResponseResult;
import com.future.message.pojo.User;
import com.future.message.pojo.UserVo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    /**
     * 添加用户
     * @param user
     */
    int addUser(User user);

    /**
     * 删除用户
     * @param userId
     */
    int deleteUser(Integer userId);

    /**
     * 更新用户信息
     * @param user
     */
    int updateUser(User user);

    /**
     * 分页查寻
     * @return
     */
    List<UserVo> queryUserByPage();

    /**
     * 模糊查询
     * @param message
     * @return
     */
    List<UserVo> vagueSearch(String message);

    /**
     * 查找用户信息
     * @param username
     * @return
     */
    User selectByUserName(String username);

    //通过id查找用户
    User findUserById(Integer userId);

    /**
     * 查找权限
     * @param username
     * @return
     */
    String queryForPermission(String username);

    /**
     * 通过id查找用户信息
     * @param userId
     * @return
     */
    User searchByUserId(Integer userId);

    /**
     * 通过用户Id修改面膜
     * @param userId
     * @param newPassword
     */
    int modifyPassword(@Param("userId") Integer userId,@Param("newPassword") String newPassword);

    /**
     * 修改个人昵称
     * @param userId
     * @param nickedName
     * @return
     */
    int modifyDetail(@Param("userId") Integer userId,@Param("nickedName") String nickedName);

    /**
     * 查找总的指标数目
     * @param userId
     * @return
     */
    int countReportAll(Integer userId);

    /**
     * 查找总的指标数目
     * @param userId
     * @return
     */
    int countReportFinish(Integer userId);

    /**
     * 查询所有用户
     * @return
     */
    List<User> queryForAll();

    /**
     * 查询部门是否存在
     * @return
     */
    int judgeDepartment(String  department);
}
